Lorin and Deitel, "Operating Systems", Addison-Wesley Publishing Co., 1981, at pp. 269-284, classify systems into two classes, These are (1) processors which know of each other's existence and explicitly coordinate their use of a shared resource and (2) those which are unaware of each other and rely upon an external monitor or kernal function. Examples of cooperating processors are (a) those that share a resource that neither produces and (b) those that are interdependent (as a producer and consumer) of the resource around which they are synchronized. Excellent discussions may be found in Per-Brinch Hansen, "Operating System Principles", Prentice-Hall series in Automatic Computation, 1973, in the section on Process Cooperation, between pp. 89-122. A more recent exposition by Hansen appears in "The Architecture of Concurrent Programs," Prentice-Hall Series in Automatic Computation, 1977.
Mutual exclusion has as its object the control of a reusable resource so that it is never coupling more than one processor at a time. This means that a resource may not be accessed by more than one processor. Scheduling the mutually exclusivity of resources under centralized synchronized (tightly coupled) control is a well-solved problem. However, scheduling external means for rapidly coordinating concurrent asynchronous processors working at different speeds is decidedly non-trivial.
A desirable solution recognizes the occurrence of race condition and the varying speeds of tasks executing on different processors. Furthermore, two tasks on different processors may notice and act on the availability of a sharable resource before either has had opportunity to block the other. Another caution is that no individual task be blocked indefinitely by other tasks or their processors from requesting the resource. That is, the wait of a task/processor for a resource should be finite, whence bounded. Relatedly, the term `critical region` should be taken to mean the execution of those instruction segments involving use of the sharable resource.
Other forms of scheduling processor access to resources include serialization such as by way of enqueueing so as to ensure that only one processor at a time enters a critical region. One may superimpose a priority in such a queue. Central to any access discipline is the establishment of synchronization. By definition, concurrent asynchrous processors are out of step both in phase and cycle time. Relatedly, Ford and Hamacher, "Hardware Support for Interprocess Communication and Processor Sharing," IEEE Third Annual Symposium on Computer Architecture, 1975, pp. 113-118, discloses semaphores and mailbox memories with reference to an external dispatcher scheduling asynchronous processor sharing of resources. While the design is efficacious, it is slow since it requires numerous memory updates, table and status lookups.